The problem with your attempt is that you are simply printing the first 6 columns of every line of your input file to the standard output. If there are less columns in any given line, awk
interprets the missing ones as "empty", so the output of your 7th line should actually be something like
chr1 \t 290338 \t 290378 \t NS500455:80:HG7TMBGXB:$:13404:14651:1128 \t + \t \n
(spaces around \t
added for readability; note the "empty" column at the end).
In order to filter out malformed lines based on column count, you can try
awk -F'\t' -v OFS='\t' 'NF==6' file.txt > output.txt
It will only print those lines that have 6 fields (=columns).