Просто трябва да изключите тези, които са преки приятели, както и приятели на приятели. Пренаредих псевдонимите на таблицата, така че да е малко по-ясно (все пак за мен) какво се извлича:
SELECT
u.*
FROM
user u
INNER JOIN friend ff ON u.user_id = ff.friend_id
INNER JOIN friend f ON ff.user_id = f.friend_id
WHERE
f.user_id = {$user_id}
AND ff.friend_id NOT IN
(SELECT friend_id FROM friend WHERE user_id = {$user_id})
Това също така премахва необходимостта от изключване на потребителския идентификатор, който е запитан.