Is TLS 1.2 compression methods in client_hello a mandatory field?
Well, it is specified in the ClientHello struct here, and the description reads:


  The ClientHello includes a list of compression algorithms supported
     by the client, ordered according to the client's preference.


And since the client hello is the first message that needs to be send to the server, yes, new sessions should contain this struct, even if the internal value just points to the zero-compression.