Hi,
There is indeed a limit based on the length of the discount_product_id column in the hikashop_discount table in your database.
You could change the type of that column. It's set by default to 255 characters. You could change it to "text" to allow for up to 65000 characters.
We decided not to change that because normally, if you have so much products to select in a discount, it makes more sense to create an unpublished category and select that category in the discount, and then add it to the products on which you want the discount to apply as a second category. Also, keeping the varchar type instead of text helps with the speed of the MySQL queries.