С условной агрегацией:
SELECT
MAX(CASE WHEN CHECKTYPE = 'I' AND TIMETYPE = 'AM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [AM-IN],
MAX(CASE WHEN CHECKTYPE = 'O' AND TIMETYPE = 'AM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [AM-OUT],
MAX(CASE WHEN CHECKTYPE = 'I' AND TIMETYPE = 'PM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [PM-IN],
MAX(CASE WHEN CHECKTYPE = 'O' AND TIMETYPE = 'PM' THEN FORMAT(CHECKTIME, N'HH:mm') END) [PM-OUT]
FROM [dbo].[CHECKINOUT]
WHERE [USERID] = N'21477' AND [CHECKTIME] BETWEEN N'2020-02-3 00:00:00' AND N'2020-02-4 00:00:00'
GROUP BY [USERID]