Поскольку вы сравниваете строки, а не даты.
Самый простой способ превратить строку в дату - это заключить в DATE ().
SELECT CASE WHEN DATE(CONCAT(2011, '-1-1'))
BETWEEN DATE('2011-1-1') AND DATE('2011-3-31')
THEN 1 ELSE 0 END AS status;
http://dev.mysql.com/doc/refman/5.0/en/datetime.html
Вы также можете сделать свой запрос короче, поскольку MySQL возвращает логическое значение равным 1/0.
SELECT DATE(CONCAT(2011, '-1-1'))
BETWEEN DATE('2011-1-1') AND DATE('2011-3-31') as status;