Вы можете редактировать свой SQL следующим образом:
"SELECT id, (CASE WHEN user1 = $id THEN user2 ELSE user1 END) as user, time FROM friend_requests WHERE (user1 = $id OR user2 = $id) AND accepted = 1"
Это вернет только принятых друзей для вашего пользователя с идентификатором $ ID.
Подтверждение концепции здесь: http://www.sqlfiddle.com/#!9/e0b337/2
РЕДАКТИРОВАТЬ : Как уже указывалось, вы должны связать параметры для защиты от внедрения SQL, но это выходит за рамки вашего вопроса.
РЕДАКТИРОВАТЬ 2 : По второму вопросу ниже вы можете сделать два цикла или, если таблица мала по сравнению с доступной памятью, вы можете выполнить fetchAll () следующим образом.
$id = $_SESSION['user_id'] ;
$query = $db2->prepare("SELECT (CASE WHEN user1 = :userid THEN user2 ELSE user1 END) as user FROM friend_requests WHERE (user1 = :userid OR user2 = :userid) AND accepted = 1");
$query->bindParam(':userid', $id, PDO::PARAM_INT);
$query->execute();
$friends = $query->fetchAll(PDO::FETCH_ASSOC);
$friends[] = array('user'=>$id);
foreach ($friends as $k=>$friend) {
echo $friend . "\t";
}