The problem probably has to do with how if node works on different length lists for the true and false values. The common alternative is ScopeIf but it can be a bit trickier.
I don’t remember the exact details but I am sure there are several posts somewhere comparing the two. Some older examples include IF node and If and Lists of different lengths