This is the problem:
grep -E '^nothing' List.txt | echo $?
|, grep echo, , 0, .
grep -q:
grep -qE '^nothing' List.txt
man grep:
-q, --quiet, --silent
Quiet mode: suppress normal output. grep will only search a file until a match
has been found, making searches potentially less expensive.