Tente isto:
$ sudo sh -c "cat /dev/null > error.log"
O problema é que com o comando que você usou, você está realmente executando dois comandos: o primeiro gato é executado como root (via sudo), mas todo o restante é executado como seu usuário. O método acima resolve isso.
This responder sobre U & L tem mais informações sobre isso.