Before we get down to business, you need to know that for this trick to be effective, you have to be willing to eliminate a contact (although we will talk about that later). Keeping that in mind, to hide your profile picture from a WhatsApp contact without blocking it, first open the app and tap on the menu button (in the top right corner of the screen):

Then, tap on Settings:

Then, on Account:

Afterward, in Privacy:

And now, in Profile photo:

On this screen, if it is not already marked, select My contacts:

That means that anyone who is not on your contact list will not be able to see your photo. However, the person you want to hide it from is still part of your contacts, so there is still one last step (the one we talked about at the beginning).
Leave WhatsApp, and open your contact manager. Look for the person you want to hide your profile picture and tap on them:

It will take you to the contact¿s detail page. Take this opportunity to write down its name and phone number and tap on the menu button (in the top right-hand corner of the screen):

Then tap Delete to remove this contact from your contacts list, and from WhatsApp at the same time:

Once deleted, that contact will no longer be able to see your profile picture.
This method may seem very rough, but unfortunately, there is no other way to do it yet. Unless WhatsApp gets more options regarding privacy customization, there is no choice but to use this system. WhatsApp still has several areas for improvement, and this is one of them. For now, we will have to keep waiting for more and better options to be implemented to improve the user's privacy.