Here both queries are wrong let's take example of first query
Let a table p which contain more then 1 parts with red colour and distinct pid now when we use ALL... If all the records contain red parts , but distinct pid it will return the records but this will be wrong output since in the question it is asking to retrieve SID which is supplier of each and every red part present in the parts table.
Now coming to the second table it is also wrong since EXIST returns true if there are SID which are supplier of some red parts... (At least one also) but this won't be also correct output
Second query would have been correct if there EXISTS was replaced by NOT EXISTS since it returns true for records wich are related to each and every record of particular condition in main table..