se ho ben capito nella tabella scad_fin solo uno dei due campi idsocfin e idagente viene compilato; vuoi estrarre i dati delle scadenze relative alla società finanziaria PIPPO e a tutti gli agenti, perciò io la riscriverei unendo due query distinte (attenzione che il numero dei campi deve essere lo stesso)

SELECT s.idcli, s.idsocfin, s.idagente, soc.idsocfin, soc.ragionesoc, c.idcli
FROM (scad_fin s INNER JOIN societa_fin soc ON soc.idsocfin = s.idsocfin)
INNER JOIN cliente_fin c ON c.idcli = s.idcli
WHERE soc.ragionesoc = 'pippo'
UNION SELECT s.idcli, s.idsocfin, s.idagente, a.idagente, 'vuoto', c.idcli
FROM (scad_fin s INNER JOIN agente a ON a.idagente = s.idagente)
INNER JOIN cliente_fin c ON c.idcli = s.idcli;

Forse è una "porcata" ma dovrebbe funzionare. Se non funziona magari dopo trovo il tempo di fare due prove.