Това не е грешка в MySQL.
Заявка за агрегиране ще върне по един ред за срещана група. Без group by , има една група -- цялата таблица. Признавам, че това е малко сложно, защото все още има една група, дори когато няма редове в таблицата.
С group by , има по един ред на група. Ако в дадена група няма редове, групата не се появява. Във вашия случай, заявката:
SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable`
WHERE `status` = 1
Ще върне един ред с два NULL s последвано от 0 .
Същата заявка с:
GROUP BY `a`,`b`
няма да върне редове, защото няма редове за формиране на групи.