For the first part - I wouldn't select what the actual 3 options are unless they are going to be changing a lot (which shouldn't be the case for your DB structure). Just hard code what those 3 options are. This will save you running an unnecessary query every time this feature is used. If you really need it to be dynamic you could probably use a DESCRIBE `table` query.
Btw this field should be the ENUM type (short for enumeration)
For the second part, I'm confused by what you want to do.
Do you need to count the number of rows in the table belonging to each possibly value of my_type ?
If so something like this should work:
That will only return the number of records associated with each possible my_type where one exists.
SELECT count(*), my_type FROM `table` GROUP BY my_type
You could use your programming language to assign 0 values to those types not returned by the query.