Как сортировать список, взятый из БД, по месяцу и дню?
1. Если ты хочешь отсортировать именно по месяцу и дню без года, то какого чёрта добавляешь в шаблон форматирования даты %Y?
2. Если же ты сортируешь по полной дате и поле bd имеет тип DATE, DATETIME. TIMESTAMP и т.п. (т.е. тип, предназначенный для хранения даты) то никаких извращений с DATE_FORMAT не требуется - просто ORDER BY bd DESC.
3. Для ситуации, когда поле не заполнено, в SQL если специальное значение NULL. Костыли в виде bd!='0' - ещё один бред.
не DESC а ASC