A opção --exclude
usa globs que são comparados com nomes de arquivos, não diretórios ou caminhos completos:
--exclude=GLOB
Skip files whose base name matches GLOB (using wildcard
matching). A file-name glob can use *, ?, and [...] as
wildcards, and \ to quote a wildcard or backslash character
literally.
Então, você poderia fazer:
$ grep -r --exclude="*useless_file*" searchstring
new_folder/good_file:searchstring
Ou para excluir todos os arquivos desse diretório:
$ grep -r --exclude-dir="old_folder" searchstring
new_folder/good_file:searchstring