Ao final houve uma inversão das colunas volume_de_compras com volume_vendido. Deve-se inverter o condicional <= para >= para obter o resultado esperado:
SELECT CADASTRO.CPF, CADASTRO.NOME, VENDAS.DATA, CADASTRO.VOLUME_DE_COMPRA, VENDAS.VOLUME_VENDIDO,
CASE WHEN CADASTRO.VOLUME_DE_COMPRA >= VENDAS.VOLUME_VENDIDO THEN 'Vendas Válidas'
ELSE 'Vendas Inválidas' END AS RESULTADO
FROM (SELECT NF.CPF, TO_CHAR(NF.DATA_VENDA, 'YYYY-MM') AS DATA, SUM(INF.QUANTIDADE) AS VOLUME_VENDIDO
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, TO_CHAR(NF.DATA_VENDA, 'YYYY-MM')) VENDAS
INNER JOIN
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CADASTRO
ON VENDAS.CPF = CADASTRO.CPF
WHERE VENDAS.DATA = '2018-01';