Podrías hacerlo así:
Código MySQL:
Ver original IF(id_usuario_origen
= $id_usuario
, u1.nombre_usuario
, u2.nombre_usuario
) AS nombre_usuario
, IF(id_usuario_origen
= $id_usuario
, u1.otro_campo
, u2.otro_campo
) AS campo_usuario
...
amistades
JOIN usuarios u1
ON id_usuario_origen
= u1.id_usuario
JOIN usuarios u2
ON id_usuario_destino
= u2.id_usuario
(
id_usuario_origen = $id_usuario
XOR id_usuario_destino
= $id_usuario
)
Seguirá siendo mucho mejor que traer todos los datos de la tabla cuando solo usarás una pequeña parte.