`ifne` doesn't set an exit code based on whether the input is empty or not, so `&&` and `||` aren't going to work as hoped. An alternate approach to Babyy's answer is to use `pee` from the same package:
printf "asdf\
" | pee 'ifne cat -' 'ifne echo "stream not empty"'
This works like `tee`, but duplicates the input stream into a number of pipes, treating each argument as a command to run. (`tpipe` is a similar command, but behaves slightly differently.)
A possible issue though is that each of the commands may be writing to stdout in parallel, depending on buffering and length of input/output there is a chance that output will be interleaved, or vary from run to run (effectively a race). This can probably be eliminated using `sponge` (same package) instead of `cat`, and/or other buffering/unbuffering solutions. It affects the example you gave, but may not affect your real use-case.