How can I push a result of entries/products from a loop into an array?
This line doesn't return an array of items; it returns an ElementCriteriaModel:

{% set entries = craft.entries.relatedTo(category) %}


That's probably why you're having problems with the |merge.

Changing it to the following should do the trick:

{% set entries = craft.entries.relatedTo(category).find() %}