Here Q1 seems to be correct.. let me explain why...
As question says who get higher salary than anyone in department 5 i.e. we want those employees whose salary is higher than ANY employee we take from department 5 i.e. from ALL employees(great english statement...). So now let's take each query one by one:
Q1: As per this query it says select those employees from outer query in such a way that whenever inner query finds that it's(inner query's) salary is greater that outer query's salary(as it is like nested loop so for each outer row we have to lookup whole inner table) then it will return one row which is against NOT EXISTS i.e. this query won't return anything if at least one row return by inner query hence it will give us ONLY those employees whose salary is higher than ALL employees of dept 5
Q2: It's obvious from Q1 explanation that we can't use ANY...if we change it to ALL then it will work like Q1.
So answer is option (A).