Best to use proper ANSI joins instead of mixing.
select cn.userid 'UserID',
cn.first_name +' ' + cn.last_name 'Name',
org.org_name 'BSL',
loc.location_name 'Location',
x.a 'name'
from ((table1 cr left outer join table2 cn on cn.contact = cr.customer)left outer join table3 cg on cn.contact = cg.[user])
left outer join table4 i on cn.contact= i.request
cross join organisation org
cross join location loc
outer apply (
select a=convert(varchar(max),cr.a) where cr.a is not null
union all
select cg.b where cg.b is not null
union all
select i.c where i.c is not null) x
where cn.location_id = loc.location_id