Products discount pinned at the top of the lists I would like that when a product at a discount, it is "Pinned to the top of the lists" automatically.

And when a product does not have a discount, it is no longer "Pinned to the top of the lists".

How to do this with a rule?
Unfortunately you cannot do this with a rule. Whether or not something is sticky depends on how Views sorts a list of products, and there is no sort handler that I'm aware of that would show discounted products first. The closest you could come to would be an extra field on your products that you set when you enable the discount to identify a discounted product. You would then be able to sort by that field value.