Mysql: 1000 select queries vs 1 query ( select .. in )
to get the same result, you need to UNION the result and you can't union 10000 selects. the limit is 63 table references per query
Further IN clause has also a limit of elements you can use.

The number of values in the IN() list is only limited by the max_allowed_packet value.

see manual
As you have many ids, you should try
select t1.* 
from topic t1
      INNER JOIN 
     (SELECT  user_id FROM topic WHERE user_id &lt;= 1000) t2 ON t1.user_id = t2.user_id

On big numbers for the IN you will get faster results.