The logic error seems to be that you have the second for loop where you only want to destructure the splitted line into a tuple. Now writing that decomposition as a for loop over a one-element list (as in the corrected code) works, but seems "hmhm".
In other words, the misunderstanding here is that you want a chain of generators, not a "nested for loop"-generator.
A more proper solution could be to chain the generator expressions: with
lines = ["a,b", "c,d"]
you could do ((a,b) for a, b in (l.split(',') for l in lines))