'res1' is a sparql query result, which is different then a set of triples.
Try this instead:
res1 = g.query("CONSTRUCT { ?x ?y ?z } WHERE { ?x ?y ?z }")
triples1 = list(res1.triples((None,None,None)))
res2 = list(g.triples((None,None,None))
print len(triples1), len(res2)
....
They should be the same.
SELECT will return a sparql query result type. See module
rdflib.sparql.QueryResult for available serialization methods.
CONSTRUCT, DESCRIBE will return a graph.
ASK will return a boolean.
Best of luck.