Você obtém a lista de arquivos porque "crontab -l" retorna caracteres estelares (*) que são interpretados como caracteres glob.
Eu sugiro que você use 'set -f' no seu shell script em torno do seu teste para ativar a interpretação glob:
set -f
if $(crontab -l | grep -q "^...$"); then
# your stuff
fi
set +f