Não entendi o motivo de fazer o uso de subconsulta, não poderíamos criar uma nova coluna com o CASE diretamente, conforme código abaixo?
/* COMPARAÇÃO QUANTIDADE DE VENDAS E LIMITE POR CLIENTE */
SELECT NF.CPF
, CLI.NOME
, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS MES_ANO
, SUM(INF.QUANTIDADE) AS QUANTIDADE_MENSAL
, CLI.VOLUME_DE_COMPRA AS QUANTIDADE_LIMITE
, CASE WHEN (SUM(INF.QUANTIDADE) - CLI.VOLUME_DE_COMPRA) > 0 THEN 'INVÁLIDA'
ELSE 'VÁLIDA'
END AS STATUS_VENDA
FROM itens_notas_fiscais INF INNER JOIN notas_fiscais NF
ON INF.NUMERO = NF.NUMERO
INNER JOIN tabela_de_clientes CLI
ON NF.CPF = CLI.CPF
GROUP BY MES_ANO, NF.CPF, CLI.NOME, QUANTIDADE_LIMITE;