O Windows gvim usa o cmd.exe do Windows para executar os comandos :! e o cmd.exe não entende ~ como um alias para $HOME . Além disso, o cmd.exe aceita apenas \ como um separador de caminho, não / . Tente em vez disso
:cd ~
:!mkdir Documents\new_folder
Como :cd é um comando interno do Vim, o Vim irá expandir corretamente o ~ .
[Edit: Adicionou ! na frente de mkdir (typo), alterou o separador de caminho de / para \ (erro) e adicionou uma frase sobre isso.]