Is TLS 1.2 compression methods in client_hello a mandatory field? As stated int he question, is compression methods list in the client_hello in TLS 1.2 a mandatory field (it is clear that it is mandatory in session_resumption, but not clear to me whether it is mandatory in the new session case)?

Reference to the standard TLS 1.2, RFC 6246, chapter 7.4.1.2 (formatted):


  compression_methods
  
  This is a list of the compression methods supported by the client,
        sorted by client preference.  If the session_id field is not empty
        (implying a session resumption request), it MUST include the
        compression_method from that session.  This vector MUST contain,
        and all implementations MUST support, CompressionMethod.null.
        Thus, a client and server will always be able to agree on a
        compression method.
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.