Making a few tests with this package in the shell, is-zeroing seems to work fine and returns a boolean :
flag = b.is_zeroing(m)
print("Nc6-a5 is not a capture nor a pawn move : " + str(flag))
Nc6-a5 is not a capture nor a pawn move : False
Did you try with str(board.is_zeroing(node.move)) ?
To print both a string and a boolean in the same print, you need to turn the boolean intro a string.
By the way what version of python do you use? From searching a bit, it seems python 3+ already stores strings in UTF8 and doesn't have the unicode() function. So no idea how the unicode() function works. But if your program gives weird results for the is_zeroing function and if it's the same using str(), then you might have to look into the parameters you are sending to the is_zeroing() method (pseudo_legal move? board not corrupted?).