I think it is a default Magento functionality, when we create a promo code for free shipping it is applying on all the shipping methods and rates for all the shipping methods showing zero.
Is that any way I can apply free shipping on only Flat Rate and other shipping options will show their prices.
My rule setting in admin as below.
Best Answer
Its pretty simple, you just need to add an additional condition