Your subquery may return null or multiple records. So you can't assign the result of the subquery as query field value.
You might want to try something like this:
(
SELECT
CONVERT(nvarchar,h.HISTORY_DATE,120) + ' - ' + p.DISPLAY + ' - ' + h.HISTORY_DESC_HTML + '<br/>' AS 'data()'
FROM CR_TASK_HISTORY h [SQLSERVER with (nolock)]
INNER JOIN AR_PERSON p [SQLSERVER with (nolock)] ON p.REF = h.OFFICER_REF
WHERE h.REQUEST_NO = CR_REQUEST.REQUEST_NO
AND h.APPROVAL_COMMENTS = 1
FOR XML PATH('')
) AS "APPROVAL_COMMENTS"