日本人の感覚からすると、知っている場合は 「No, I don't」 もしくは 「No, I do」 と言ってしまいたくなる人もいるかも知れませんが、
例文で紹介したとおり、この場合「No, I don't」は知らないことを意味します。「No, I do」に関しては、「No」の後ろには肯定文を続けることができないので、
文法的に間違っていることになります。
先ほど紹介した例文を使って説明するならば、(返答1)の「do」は「know」の反復を避けるために使われている代動詞の「do」ですから、
意味はまったく「know」と同じということになり、ここでは「Yes, I do」は「Yes, I know」と同じ意味になると考えられます。
そこで、「Yes, I know」の後ろに続く文を考えるのです。なにを「知っている(I know)」のでしょうか?
否定疑問文の例文にあるように、「know」の後ろには「where the gun is」がくることが分かります。
したがって、「Yes, I do」を丁寧に書くのであれば、「Yes, I know where the gun is」(私はその銃がどこにあるのかを知っています)ということになります。
「No, I don't」に関しても同様に考えれば、「No, I don't know where the gun is」(私はその銃がどこにあるのかを知りません)になります。