Yes, I understand that the condition is not met; but is not have the proper behavior, because, below the FOR statement I have other tables to load but qlikview stopped the execution right after the FOR.
Two remarks (each probably worth 1ct so it all sums up to "my 2cts")
The table for which you try to find the number of rows doesn't exist. NoOfRows returns NULL, not 0 because that's a value that indicates an empty but existing table. The FOR loop still has a valid syntax because the $-sign expansion for $(v.Product) will produce nothing and only the -1 part will remain.
FOR i = 0 TO -1 should never produce an error because it isn't an invalid specificaiton. If you consult the QV Desktop help on FOR NEXT, you will discover that the full syntax is: FOR var = expr1 TO expr2 [STEP expr3] meaning that negative step values are allowed and therefore expr2 can be negative as well. The default step value of course is +1, but that doesn't affect the validity of the FOR specification or its workings. The one you have on your hands will just never execute a single cycle.