But the equation for your constraint does not contain j anywhere. So for the same i but different j, the constraint declaration will generate the same equation. If you did not see duplicates when you used EXPAND, then I suspect the code you ran is somehow different than what you posted.
In any case, I think I understand what you want to accomplish. So let me describe the model generically and you can modify it as needed to use in your optimization problem. Suppose x and y are variables, with 0 <= x <= u, where u is some constant, and y >= 0. You want to model the logical implication "if x > 0 then y >= c," where c is some constant. Then you can introduce a binary variable z and the following constraints:
x <= u * z
and
y >= c * z.
If x > 0, the first constraint forces z = 1. If z = 1, the second constraint forces y >= c. So together they enforce the desired implication: if x > 0 then y >= c.