Do we have to pay transaction fee if we transfer bitcoins from one wallet to another ? Can this be done for free?
also please mention wallets who do not charge transaction fee (if they exists)
No, you don't have to pay the transaction fees if you want to switch to a different wallet. If you have the private key of the first one, just import it into the second one and there you go.