Я также получаю пустой словарь, когда запускаю ваш код, но у меня работает следующее, немного отличающееся:
from qgis.core import *
from PyQt4.QtCore import QFileInfo
from PyQt4.QtGui import QApplication
import os
from os.path import expanduser
home = expanduser("~")
QgsApplication( [], False, home + "/AppData/Local/Temp" )
QgsApplication.setPrefixPath("C:/OSGeo4W64/apps/qgis", True)
app = QApplication([], True)
QgsApplication.initQgis()
# Get the project instance
project = QgsProject.instance()
# Open the project
project.read(QFileInfo('C:\path\to\project\project.qgs'))
print project.fileName()
# Get the layers in the project
layers = QgsMapLayerRegistry.instance().mapLayers()
print layers
QgsApplication.exitQgis()
app.exit()
Протестировано на QGIS 2.18.3 для Windows 7 64-bit.

Редактировать:
Я полагаю, что основное различие между вашим кодом и тем, что я использовал, заключается в том, что вам нужно создать объект QApplication перед созданием QgsApplication. Так что вам нужно заменить:
qgs = QgsApplication([], False)
с этим:
qgs = QApplication([], False)
Но класс QApplication необходимо импортировать, поэтому мы должны добавить следующее:
from PyQt4.QtGui import QApplication
И, наконец, если вы хотите выполнить очистку, вам нужно добавить следующее в конце.
QgsApplication.exitQgis()
Таким образом, вы можете попробовать использовать следующий код, который ближе к вашему исходному коду:
from qgis.core import *
from PyQt4.QtCore import QFileInfo
from PyQt4.QtGui import QApplication
QgsApplication.setPrefixPath("C:/OSGeo4W64/apps/qgis", True)
qgs = QApplication([], False)
QgsApplication.initQgis()
# Get the project instance
project = QgsProject.instance()
# Open the project
project.read(QFileInfo('C:/path/to/project/project.qgs'))
print project.fileName()
# Get the layers in the project
layers = QgsMapLayerRegistry.instance().mapLayers()
print layers
QgsApplication.exitQgis()
QGIS 2.18.2пробных шагах OP и @ GermánCarrillo. Какая версия ОП?