How does 0 have two values in one's complement?
In 1's complement you just invert all the bits.

Consider these 2 examples (assuming 8 bits): 


$4 = 00000100$,  so $-4= 11111011$
$0 = 00000000$, so $-0=11111111$.


So you have 2 ways to represent the number 0

In 2's complement you add 1 to the 1's complement representation of the negative number


$-4$ that in 1's complement was $11111011$ becomes $11111100$
$-0$ that in 1's complement was $11111111$ becomes $00000000$ same as 0


So you have just one way to represent the 0 in this case

As you can see from the examples the difference is that:


in 1's complement, with 8 bits you can just express numbers from $-2^{7}+1$ to $2^7-1$ (from -127 to 127)
in 2's complement with 8 bits you can express numbers from $-2^{7}$ to $2^{7}-1$ (from -128 to 127), so one more number