El problema es que la variable $Q no contiene un valor válido, presumiblemente porque el valor pasado en $station1 no existe en la base de datos. Hubiera pensado que CI contrarrestaría esto al menos usando una cadena vacía entre comillas, pero aparentemente no.
Necesitas validar eso $Q tiene un valor razonable antes de pasarlo a where() . Por ejemplo, otro num_rows() check le dirá si la primera consulta encontró algo.
Además, debe pasar los datos de campo de $Q , no sólo el objeto. Entonces, en su caso, $Q->row()->Zone .