You are doing it right and 1 is the status code (SUCCESS). Below is a complete (working) example of queryByShape implemented in Java mapscript (for a vector layer).
Translating the sample into python should be a piece of cake, but I'm not sure how it works with raster layers.
/**
* query a single layer by specifying a shape (in map coordinates).
*
* @param i the layer to quer
* @param s the shape whithin which results must be found
* @return the query results
*/
protected List queryLayerByShape(int i, shapeObj s) {
List results = new ArrayList();
layerObj layer = map.getLayer(i);
if (layer != null && isVisible(layer)) {
if (log.isDebugEnabled()) {
log.debug("Querying (by shape) layer: " + layer.getName());
}
if (layer.queryByShape(map, s) == mapscript.MS_SUCCESS) {
if (layer.open() == mapscript.MS_SUCCESS) {
for (int j = 0; j < layer.getNumResults(); j++) {
if (log.isDebugEnabled())
log.debug("Layer " + layer.getName() + ", result number:" + j);
resultCacheMemberObj resultMember = layer.getResult(j);
shapeObj shape = new shapeObj(layer.getType());
layer.getShape(shape, resultMember.getTileindex(), resultMember.getShapeindex());
if (shape != null) {
Map aResult = getResult(shape, layer);
results.add(aResult);
} else {
log.error("Shape " + j + " is null!");
}
}
// not necessary since 5.6
//layer.close();
} else {
log.error("Cannot open layer: " + layer.getName());
}
} else {
log.info("Query by shape on layer " + layer.getName() + " failed.");
}
}
return results;
}
public shapeObj getSelectionShape(MapRequest request) {
shapeObj s=new shapeObj(mapscript.MS_SHAPE_POLYGON);
double x,y;
String[] coords=request.getSelectionCoordinates().split(";");
lineObj l=new lineObj();
for ( int i=0; i<coords.length; i++ ) {
String[] pair=coords[i].split(",");
x=XToMapCoordinates(map.getWidth(), map.getExtent(), Double.parseDouble(pair[0]));
y=YToMapCoordinates(map.getHeight(), map.getExtent(), Double.parseDouble(pair[1]));
l.add(new pointObj(x, y, 0));
}
s.add(l);
if (log.isTraceEnabled()) {
log.trace("QueryByShape selectionCoords="+request.getSelectionCoordinates());
}
return s;
}