That is, sadly, currently expected behavior. The Merge-Node does always expect data from both inputs, and if there is no incoming data it goes upstream to find data by itself.
There is already an open PR to change that in the future, will probably be released with the upcoming v1.
The solution in your case is probably not to have a Merge-Node at all (as there is actually nothing to merge) and rather connect directly to the Post File to Ninox Node.
And just to make it clear again. The issue is not the IF-Node, it is the Merge-Node and that it always expects data from both inputs. You should also make sure to never have more than one incoming connection into any Merge-Node, for that reason did I add the NoOp node.
Agree, esp. this behavior is confusing and makes some things in n8n unnecessarily complicated. So really looking forward to having the above-mentioned PR merged soon so that it is a thing of the past.