Queue returns values only in parent module

I don't understand why it happens, but my thread returns value only if run it in it's parent module.

My method. I've excluded SQL statement, but I'm 100% sure it works. result is a lits of dictionaries, so it's a one value variable.

def _transits_data(self,zone_id, interval, queue):
     while datetime.now() >= session_interval:
            result = SQLConnector().query(statement, zone_id, interval, interval, fetch=True)
            queue.put(result)

Next I start my thread

def start(self, zone_id, interval):
        queue = Queue()
        self.transits_list =Thread(target=self._transits_data, args=(zone_id, interval, queue))
        return queue.get()

So if I run it in the same module

if __name__ == '__main__':
    transits_listener = TransitsListener()
    result = transits_listener.start(zone_id, interval)
    print(result)

I receive a list of dicts as expected, but if I import it in another module application.py:

class Application
   def __init__(self):
       self.transits_listener = TransitsListener()
   def run(self):
       transits_list = self.transits_listener(zone_id, interval)
       print(transits_list)
if __name__ == '__main__':
  app = Application()
  app.run()

I receive only an empty list.