Actually this is per design - because the data pickers never know how your condition will resolve, if you want to do something with the results, you should make sure that the output data generated from inside the condition has the same output name in both if and else steps.
So then you can just pick the data no matter if it is generated from the if or from the else step - otherwise you will be picking data that might not exists because of your condition.