Because 1 is not a nullable int, so if you write this:
int? i = 0==1 ? 1 : null;
The compiler tries to return a Value type (1, integer, which can't be null) and a Reference type (null) and says "These aren't the same type, and there is no implicit conversion"
When you specify the type of the second value:
int? i = 0==1 ? 1 : (int?) null;
It realises what you are trying to do because there is an implicit conversion from int to nullable int