In an `if` statement, you have an `else`. If `if` doesn't match, the `else` branch is executed.
In a conditional statement, both actions are executed, regardless of the condition is true or false.
A simple fix:
$ awk '$2!=1 {print $1,"0";next};{print $0}' file
PRO 1
GLN 0
ILE 0
THR 0
And you can make it more concise:
$ awk '$2 != 1 {print $1,"0";next};1' file
PRO 1
GLN 0
ILE 0
THR 0
When condition is true `1` and there is no action, `awk` default behavior is `print`. `print` with no argument will print `$0` by default.