Если я правильно понял (с данными, которые вы нам предоставили, запрос должен вернуть PatientId 2 и 3), примерно так должно работать:
WITH TT (PatientId, Test, Result, N) AS (
SELECT PatientId,
Test,
Result
ROW_NUMBER() OVER(PARTITION BY PatientId ORDER BY Date ASC)
FROM some_table
WHERE Test = 'X')
SELECT PatientId
FROM TT
WHERE Result > 10
AND N = 1;
без CTE:
SELECT PatientId
FROM (SELECT PatientId,
Test,
Result
ROW_NUMBER() OVER(PARTITION BY PatientId ORDER BY Date ASC) N
FROM some_table
WHERE Test = 'X') tmp
WHERE Result > 10
AND N = 1