Eu não tentaria fazer tudo em uma consulta. Eu prefiro fazer várias pequenas consultas simples, uma para cada tipo de entidade (post no mural, comentário, etc), depois montar os resultados em código PHP e enviar para o cliente.
Não complique demais as coisas, já há muita complexidade. :-)
Exemplos de consultas:
SELECT p.*, n.*
FROM notifications n
INNER JOIN wall_posts p ON p.id = n.item_id
WHERE n.type_id = 'wall_post' AND n.is_seen = 0;
ORDER BY time_stamp DESC
LIMIT 10;
SELECT c.*, n.*
FROM notifications n
INNER JOIN wall_comments c ON c.id = n.item_id
WHERE n.type_id = 'wall_post' AND n.is_seen = 0;
ORDER BY time_stamp DESC
LIMIT 10;