watcher callback invalid only if None

We spent a painful couple of hours debugging this, hope nobody else will have to do it in the future :)

Our usecase: We passed a callback function that incidentally evaluated to `False` when used in a `bool` context, so it was never called.