La tua clausola where sta riconvertendo il join esterno in uno interno.
Le righe non corrispondenti conservate dall'outer join avranno tutti NULL valori per documentation.status quindi il tuo documentation.status != 3 condizione li filtrerà indietro (il risultato dell'espressione NULL !=3 è unknown non true ).
Per evitare questo problema usa
select documentation_reference.ref_docnumber,
documentation.filename
from documentation_reference
left outer join documentation
on ref_docnumber = documentation.docnumber
and documentation.status != 3
where documentation_reference.docnumber = 'TP-036'
Nota che il documentation.status != 3 il predicato viene spostato nel JOIN condizione.