Get the query names from the BAM file:
samtools view <input file> | cut -f1 | sort > BAM_headers.txt
Get the query names from your FASTQ file (assuming your read length is 101bp):
awk '$0 ~ /^@/ && length($0) < 101' <fastq_file> | sed 's/^@//' | sort > FASTQ_headers.txt
Use diff to compare the two files.
diff BAM_headers.txt FASTQ_headers.txt
Since all reads in the FASTQ headers file will also be in the BAM headers file, diff should only show query names that are in the FASTQ file that are not in the BAM file.
The output should show something like this:
That's your list of missing read names. You can parse the diff output to get the read names without leading '>' symbols, then use grep to get the actual reads from the FASTQ file if you'd like.
If you want to use this approach and need help figuring out the last two parts, let me know.