Если вы хотите выполнить такой запрос, вы должны преобразовать свой HABTM в has_many :trough
и создать модель для объединяющей таблицы и запроса на основе этого.
В качестве альтернативы, , но, возможно, с худшимпроизводительность , вы можете сделать:
Merchant
.select(:id)
.joins("categories_merchants ON categories_merchants.merchant_id = merchant.id")
.where("categories_merchants.category_id IN (?)", [1,2,3,4])