You would have to left join table_b after table_c then, or would that produce to many rows?
selecta.valueasa,b.valueas b1,c11.valueas c11
from table_a aleftjoin table_c as c11 on c11.value = 'a_1'andexists(select 1 from table_b b where c11.b_pk = b.pk and b.a_pk = a.pk)
leftjoin table_b as b on c11.b_pk = b.pk and b.a_pk = a.pk