The rules for evaluating expressions in Verilog have always been that the widths of operands get extended based on their context before applying the operator. The 1-bit operand 1’b0 feted extended to 32’b0, then the bitwise negation ~ happens.
If you want the result you intended, us a logical ! instead of bitwise ~.