MySQLのIN()にNOTをつけてやるとなんか変

MySQLでIN()にNOTをつけて指定以外のものを取得したかったのでやってみた。
で、INの中が数件ならちゃんととってきてくれるんだけども、INの中が1000件を超えるデータだとちゃんととってきてくれない

検証データ
foo_t:70000件くらい
除外したいデータ:1000件くらい

ダメだった例

IN()のなかは1000件超
NOTなしの場合はIN()で指定したものが正常に取得できる

SELECT foo_id FROM foo_t  WHERE foo_id IN ( '1' ,  '641418' , ・・・・・・・・・ '34885' ,  '619827' ,  '37861' ,  '50011' ,  '20949' )  ORDER BY hoge DESC

NOTだとうまくいかない

SELECT foo_id FROM foo_t  WHERE foo_id NOT IN ( '1' ,  '641418' , ・・・・・・・・・ '34885' ,  '619827' ,  '37861' ,  '50011' ,  '20949' )  ORDER BY hoge DESC

成功した例

一時データbar_tにデータを入れてそれをサブクエリに突っ込んだ場合はうまくいった

SELECT foo_id FROM foo_t WHERE foo_id IN (SELECT foo_id FROM bar_t );
SELECT foo_id FROM foo_t WHERE foo_id NOT IN (SELECT foo_id FROM bar_t );

これってMySQLのバグ?
う〜ん・・・、謎のなので深追いはしない方向でw