Optimize schema and query for overlapping date ranges query
You have only primary keys for tables and indexes related to the FK restrictions but no indexes related to the queries you run.

SELECT qtm.date_i
     , s.name
     , pp.* 
  FROM query_time_window   AS qtm
  JOIN seller              AS s   -- some ON condition is strictly recommended
  LEFT JOIN product_price  AS pp  ON pp.seller_id = s.id -- most conditions are moved to WHERE
 WHERE ( pp.product_id = 1 OR pp.product_id IS NULL )
   AND ( pp.created_at &lt;= qtm.date_f   -- I've changed '!a&gt;b' to 'a&lt;=b'
         AND ( pp.cancelled_at IS NULL 
               OR pp.cancelled_at &gt;= qtm.date_i) -- I've changed '!a&lt;b' to 'a&gt;=b'
       )
 ORDER BY qtm.date_i, s.id;     


Table query_time_window should have an index (date_i, date_f) or (date_f, date_i)
Table product_price should have an additional index (product_id, seller_id, created_at, cancelled_at) - an exact order of the columns depend on the real data. You can try different combinations and choose the fastest one.