Great question! Before we get to the answer, we need to fix a minor typo in the posted code that you referenced:
' change the first occurrence of LastRow_1 to LastRow_2
.Value = Evaluate("IF(COUNTIF(" & Col_2 & StartRow & ":" & Col_2 & LastRow_2 & ", " & Col_1 & StartRow & ":" & Col_1 & LastRow_1 & "),""""," & Col_1 & StartRow & ":" & Col_1 & LastRow_1 & ")")
' This fix will allow list 2 to be longer than list one.
Now, no matter which list has the duplicates, the macro will not output the instances. COUNTIF can't tell one apple from another. More accurately, the macro is designed to detect TRUE or FALSE, even though it's obscurred by the output.
IF(logical test,OUTPUT if TRUE, OUTPUT if FALSE)
The logical test really evaluates to either a non-zero value, which is TRUE, or a value of zero, which is FALSE. That's why the COUNTIF function can detect missing fruit: it evaluates to zero for any fruit that is in List 1, but not List 2.
By the way, this means that you need a second test. That gets complex, really fast. Instead, you may want to look at the dictionary object. See the reference, below. On that page, you'll learn how to list unique items. This should point you in the right direction.
Excel VBA Dictionary Keys and Items