BUG: Boolean assignment allowed writing to 0-sized array

This was because of the assumption that broadcasting works
if the dimension is not > 1, but correct is != 1.

Adepted from a patch provided by prossahl, backports gh-3575
Merge pull request #3577 from seberg/backport-issue-3458

Backport gh-3575