Please read the ShopifyAPI gem on how to create a new product. We make all the root assumptions for you so you are working with "objects". No need to do anything like pass in "products" : { ... }. That'll get translated into {'products': {'products': {....}} which is an invalid API request.
I think the nil response is the API Wrapper being annoying. I'm not sure if that's our end or just active resource, but you'd expect to get back an empty enumerable. Instead it breaks your expectations and gives you an nil object -_-