Você tem 2 problemas com seu código:
1) SE somente faz uma comparação numérica se a string em ambos os lados for avaliada para um número. Seu lado esquerdo é numérico, mas seu lado direito tem aspas, o que força toda a comparação a ser feita usando semântica de string. Os dígitos numéricos sempre classificam mais alto que um caractere de aspas, portanto, sempre informa TRUE.
Como austinian sugere em sua resposta, remover as aspas aparentemente dá a resposta correta no seu caso. Mas essa não é a história toda! Na realidade, está verificando se o espaço livre é maior ou igual a 2147483647.
2) Os números em lote do Windows (cmd.exe) estão limitados à precisão assinada de 32 bits, que equivale a um valor máximo de 2 GB -1 byte (2147483647). A instrução IF tem um valor ímpar (talvez infeliz) comportamento que qualquer número maior que 2147483647 é tratado como igual a 2147483647. Portanto, você não pode usar sua técnica para testar o espaço livre para valores maiores que 2147483647.
Consulte o link para obter mais informações.
Descrita na resposta do link é uma técnica que você pode usar para testar grandes números. Você deve deixar os dois lados da condição na mesma largura e forçar uma comparação de caracteres.
Por exemplo, O seguinte testará se o espaço livre é > = 4294967296 (4 GB)
@echo off
setlocal
set "pad=000000000000000"
set "NeededSpace=%pad%4294967296"
for /f "delims== tokens=2" %%x in (
'wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value'
) do for %%y in (%%x) do set "FreeSpace=%pad%%%y"
if "%FreeSpace:~-15%" geq "%NeededSpace:~-15%" echo Drive has at least 4 GB free space.