My guess us that you need to COALESCE then entire sub query as there may not be a corrilation and that would result in a NULL value.
For example: DECLARE @FOo TABlE (ID INT, VAL VarCHAR(10))
INSERT @Foo
SELECT 1, NULL
DECLARE @BAR TABLE (ID INT)
INSERT @BAR
SELECT 1
UNION ALL SELECT 2
SELECT
ID,
(
SELECT TOP 1
CASE
WHEN Val = 'true' THEN 'foo'
ELSE 'N/A/'
END
FROM @FOo AS F
WHERE F.ID = B.ID
) AS Val
FROM @Bar AS B
SELECT
ID,
COALESCE((
SELECT TOP 1
CASE
WHEN Val = 'true' THEN 'foo'
ELSE 'N/A/'
END
FROM @FOo AS F
WHERE F.ID = B.ID
), 'No Val') AS Val
FROM @Bar AS B