Essentially, the 2 queries are the same.
Fraid not ,
if a value is used multiple time in Indexing for Col2 then you will get "duplicate" rows back
select col2,count(*)
from indexing
group by col2
having count(*) >1
Will tell you which values are used multiple times.
the exists clause only cares that there is at least one matching row.