Corretta. COUNT(*) è tutte le righe della tabella, COUNT(Expression) è dove l'espressione è solo non null.
Se tutte le colonne sono NULL (che indica che non hai una chiave primaria, quindi questo non dovrebbe accadere in un database normalizzato) COUNT(*) ancora restituisce tutte le righe inserite. Basta non farlo.
Puoi pensare che il simbolo * significhi "nella tabella" e non "in qualsiasi colonna".
Questo è trattato nel Manuale di riferimento di MySQL .