INVALID_REQUEST
indicates that the provided request was invalid. Common causes of this status include an invalid parameter or parameter value.
If you set the mode to "transit" you must also specify either a departure_time or an arrival_time.
From the documentation
mode (defaults to driving) — Specifies the mode of transport to use when calculating directions. Valid values are specified in Travel Modes. If you set the mode to "transit" you must also specify either a departure_time or an arrival_time.
If "departure_time" is added to the request in your question, it returns a result:
http://maps.googleapis.com/maps/api/directions/json?origin=Central+Hong+Kong&destination=Sai+Kung&sensor=false&mode=transit&departure_time=12