Get sum of previous records in query and add or subtract the following results

If you're using MySQL 8+, then analytic functions can be used here:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY product_id ORDER BY date) rn,
              SUM(quantity) OVER (PARTITION BY product_id ORDER BY date) saldo
    FROM table_kardex
    WHERE date BETWEEN '2021-11-01' AND '2021-11-15'
)

SELECT id, quantity, date, product_id, saldo
FROM cte
WHERE rn > 1
ORDER BY product_id, date;

MySQL 5.7

Try this:

SELECT *
FROM (
    SELECT product_id, 
           t1.`date`, 
           SUM(t2.quantity) - t1.quantity cumulative_quantity_before, 
           SUM(t2.quantity) cumulative_quantity_after
    FROM table t1
    JOIN table t2 USING (product_id)
    WHERE t1.`date` >= t2.`date`
      AND t1.`date` <= @period_end
    GROUP BY product_id, t1.`date`, t1.quantity
) prepare_data
WHERE `date` >= @period_start;