Correcto. COUNT(*) son todas las filas de la tabla, COUNT(Expression) es donde la expresión es solo no nula.
Si todas las columnas son NULL (lo que indica que no tiene una clave principal, por lo que esto no debería suceder en una base de datos normalizada) COUNT(*) todavía devuelve todas las filas insertadas. Simplemente no hagas eso.
Puede pensar que el símbolo * significa "en la tabla" y no "en ninguna columna".
Esto está cubierto en el Manual de referencia de MySQL .