Your IN list consists of exactly one item, a string of the form '[0,2]'. If that is what topicId looks like, then your query will work.
In other words, you have a problem with your data structure. You shouldn't be storing lists of things in strings. The proper data structure would have two rows, one for each of the ids in the list.
Sometimes, you are stuck with someone else's bad data design. You can do what you want, by doing something like this:
SELECT n.*
from News n
WHERE EXISTS (SELECT 1
FROM user u
WHERE find_in_set(topicId, replace(replace(topicFollowed, '[', ''), ']', '') AND
id = 10000
);