Não.
Esta consulta
SELECT DISTINCT column_name, table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL
retornará todas as linhas que possuem um valor na coluna "column_name".
Todas as linhas dessa tabela sempre terão um valor na coluna "column_name".
Você só precisa saber quantas colunas são anuláveis e quantas não são anuláveis?
SELECT is_nullable, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY is_nullable;
Contar pelo nome da tabela? Acho que você pode usar isso.
SELECT table_name, is_nullable, count(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY table_name, is_nullable
ORDER BY table_name, is_nullable;