При работе с таблицей «одна запись на дружбу» все запросы будут раздутыми и подверженными ошибкам, потому что вам придется часто писать «id_user1 = ... или id_user2 = ...».Я бы создал представление
CREATE VIEW bidifreinds (id_user1, id_user2, is_accepted, is_blocked, created_at) AS
SELECT id_user1, id_user2, is_accepted, is_blocked, created_at FROM friends
UNION
SELECT id_user2, id_user1, is_accepted, is_blocked, created_at FROM friends
Это сделает жизнь намного проще.
Тогда вы сможете написать
SELECT f1.id_user1, f2.id_user2
FROM friends f1, friends f2
WHERE f2.id_user1 = f1.id_user2
AND f1.is_accepted
AND NOT f1.is_blocked
AND f2.is_accepted
AND NOT f2.is_blocked
И я надеюсь, что вы не используете MySQLпотому что MySQL очень медленно запрашивает представления.