Check out http://dev.mysql.com/doc/refman/5.0/en/set.html for the full skinny, but basically a field like that is known as an 'set' - it has a list of possible values, which can only be one or more of those. The value is stored as a number... which means the exhibitor_categories is actually storing the value 4 when someone sets the value to 'outdoor', because it's setting the third bit - '0100'. When you get the value back out of the database later, mysql automatically turns '0100' back into 'outdoor' for you.
But, by adding +0 to the query, you force the result to stay a number, so you would actually get the number value '0100' if the row's value was set to 'outdoor' in this case.
Apologies for getting enum and set mixed up.
Why, you might ask, is it setting the value to '0100' instead of just saying '3', like in an enum? Because a set can hold multiple values - if the values 'contemporary' (0001) and 'outdoor' (0100) were selected, it would store '0101' <- setting the 1st and 3rd bits, which would be returned as '5' if you use the +0 code.