I wasn't sure what you meant by finding CSV names. Here are two variants you can modify:
cd "$RESULT_DIR" && grep '\.csv$' "$NAMES" | xargs grep -Hf "$PATTERNS" >> MatchingResults.txt cd "$RESULT_DIR" && cat "$NAMES" | xargs -I{} grep -Hf "$PATTERNS" "{}.csv" >> MatchingResults.txt