When you set an attribute to have choices there are a few things that can happen:
a) Set no initial value, make attribute mandatory
Displays a drop down with no initial value thereby applying mandatory status fine,
Works fine unless you import data that might have values not in the list (OK - Data issue that can be sorted)
b) Set no initial value, make mandatory but allow other values and allow editing
This displays the first value in the choice list, can this not be blank ?