Hi,
When you edit a price of a product, you have the "access level" setting you can use to restrict the price to only some user groups.
So do that.
Then, you'll see that you'll have the word "free" instead of the price when your current user is not in one of these user groups.
You can change that text with a translation override:
www.hikashop.com/download/languages.html#modify
And regarding the add to cart button, you can just turn off the option "Display 'add to cart' button for free products" in the HikaShop configuration. That way, the button will only display when the price is available.