You're about 95% of the way there. The script block in the Expression section of Select-Object is a full script block, so you can perform the test right in there:
Get-QADUser -SizeLimit 0 -IncludedProperties AccountExpires,Domain,Name -DontUseDefaultIncludedProperties |
Where { $_.Title -ne "Resource" } |
Select-Object
@{Label="Domain";Expression={(($_.Domain).Name)}},
@{Label="Employee Name";Expression={($_.Name)}},
@{Label="Contract Expiry Date";Expression={
if ($_.AccountExpires -ne $null) {
$_.AccountExpires).ToShortDateString()
} else {
$CustomValue
}
},
title,
department,
Office
| Export-Csv C:\ExportForHR.csv -NoTypeInformation