Sure, they work fine. My preference is to use a dependent foregn keyed table with the values in it, that way it's easy to have an app look up the possible values and fill a drop menu with them. With enum, you pretty much have to parse the output of desc table to do the same thing, and I hate hard coding values into an application, which is what usually happens with enum types.
So, if the values aren't likely to ever change, enum is fine. If you'll want to change them or you DON'T want them hard coded into your app, then go with the fk'd table approach.
Note that the FK'd table approach works generically with any database, while enum is mysql specific.