I would choose a different approach, which, I think, could improve performance:
SELECT top 1 discount ,
brand
FROM
( SELECT discount ,
brand ,
selector ,
min(selector) over () [minselect]
FROM
( SELECT discount ,
brand ,
1 [selector]
FROM mytable
WHERE brand = 'ford'
UNION ALL
SELECT discount ,
brand ,
2 [selector]
FROM mytable WHERE brand = 'all' ) r
GROUP BY discount ,
brand ,
selector ) r
WHERE selector = minselect
ORDER BY discount DESC
source
share