How to select features for clustering to detect the number of different unique products in a search result?
You cannot expect clustering to understand what a "product" is. So it will not make one cluster per product.

Also, the lines are very blurry: is the same mobile phone in different colors the same product, or not?

An unsupervised method cannot do this. You need to provide training data and use supervised learning.