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.