Мисля, че имате нужда от нещо в тези общи линии. Направих го малко по-различно от вашия въпрос. Вместо да вземете първите 10, след това да премахнете записите. Получава първите 10 записа, които не биха били скрити.
SELECT c.ID, c.fromuserid, c.roomid, c.text, u.nickname
FROM chats c
JOIN user u ON c.fromuserid = u.id
where c.roomid = 3 AND user.banned = 0
AND NOT EXISTS(
SELECT * FROM hide h
WHERE h.hideuser = c.fromuserid
AND orguser = $userid)
ORDER BY c.ID DESC
LIMIT 0,10