Вы можете использовать функцию case внутри суммы
SELECT
count(hh.[HouseholdIncome]) CountHH, hh.[HouseholdIncome]
,sum(case when try_convert(numeric(20), hh.[HouseholdIncome]) between 0 and 4012 then hh.[HouseholdIncome] else 0 end) as 'ERDC Group 2',
sum(case when try_convert(numeric(20), hh.[HouseholdIncome]) between 4013 and 4956 then hh.[HouseholdIncome] else 0 end) as 'ERDC Group3',
sum(case when try_convert(numeric(20), hh.[HouseholdIncome]) between 4957 and 5899 then hh.[HouseholdIncome] else 0 end) as 'ERDC Group 4'
FROM [MergeData].[dbo].[Contact] c
join [MergeData].[dbo].[HouseholdIncome] hh on c.ContactID = hh.ContactID
group by hh.[HouseholdIncome]
order by IncomeGroup asc