Korrekt. COUNT(*) er alle rækker i tabellen, COUNT(Expression) er hvor udtrykket kun er ikke-nul.
Hvis alle kolonner er NULL (hvilket indikerer, at du ikke har en primær nøgle, så dette bør ikke ske i en normaliseret database) COUNT(*) stadig returnerer alle de indsatte rækker. Bare lad være med det.
Du kan tænke på at *-symbolet betyder "i tabellen" og ikke "i en hvilken som helst kolonne".
Dette er dækket af MySQL Reference Manual .