The nodes don’t seem to have the same inputs. Or at least we can’t tell. Can you clean it up so we can see each of the inputs and all nodes use the same source of inputs?
DesignScript (just like nodes) will assume list levels. If you don’t specify those list levels or intended list structure for custom nodes, you can’t guarantee the same outputs. You’re supplying a single boolean as your conditional input but multiple sublists for your outputs. This is a mismatch in structure.
We’ve all been there. Even so, there is a difference between the methods you’re using. Structure is very important when dealing with condition statements.
If you look closely they are not the same. The false condition returns all the same items (first item in false list) in the structure of the true result.
You just need to use the standard workaround to get the correct output.
The tricky part is that DesignScript doesn’t always have a one-to-one translation for certain nodes. The If node and the index shorthand (list[index]) are the two most common culprits. This means there’s often a little more involvement when getting them to work “as expected”.