I found a remedy. Turns out that it is misconfiguration of apache server who supposes to follow the chain of client certificates provided by go client. Surprisingly it is not the case of curl and python clients, i.e. when I used them the apache server was able to recognize client certificates. The actual configuration for apache requires the following parameters:
SSLCECertificatePath /path/certificates
SSLCARevocationPath /path/certificates
SSLCARevocationCheck chain
Without these options apache will unable to recognize DN of x509 certificate passed by go client.