how to get address from transaction with empty ScriptSig?
why does address start with bc1q... ? Is it some standard?


Yes, it's a Bech32 address, specified in BIP173.


  How can I derive this value from witness? 


In general, you can't.

The address defines under what conditions an output is spendable. The scriptSig or script witness gives the proof that those conditions are satisfied. If you know that a particular output is a V0 witness, then you can determine what that output was based on the input spending it (the last witness stack element is the public key). However, without knowing exactly what type of output was being spent you can't generally do so.