Puedes usar
SELECT POINT_LOCATION
FROM LOCATIONS_TABLE
WHERE ST_Contains(ST_GEOMFROMTEXT('POLYGON((P1.X P1.Y, P2.X P2.Y, ...))'), LOCATIONS_TABLE.POINT_LOCATION);
Nota:el polígono debe estar cerrado (eso significa la última coordenada ==primera coordenada). El segundo parámetro POINT_LOCATION debe ser la columna de geometría en su tabla de puntos.
ACTUALIZACIÓN:He intentado reproducir sus pasos en mi base de datos pg. Creé 2 tablas, LOCATIONS_TABLE (id, geom) y POLYGON (id, geom). Después de eso, llené LOCATIONS_TABLE con los 2 puntos
SRID=4326;POINT(-103.4955 20.723544)
SRID=4326;POINT(-103.496956 20.722446)
Después de eso, inserté el polígono en la tabla POLYGON
SRID=4326;POLYGON((-103.305496375 20.8527356811533,-103.0810348125 20.6129741620855,-101.6261045 20.5375321062668,-99.8356786875 20.3958770270624,-99.803065375 22.0572706994358,-99.649948125 28.9186361984516,-121.1212769375 8.69559423007209,-103.305496375 (...)
Visualicé la situación en qgis, vea la imagen a continuación:
Como puedes ver, los 2 puntos están dentro del polígono. Así que creé manualmente un punto fuera del polígono. Después de eso, puede usar la siguiente consulta sql para ver si los puntos están dentro del polígono:
SELECT ST_Contains(polygon.geom, point.geom)
FROM public."LOCATIONS_TABLE" point, public."POLYGON" polygon
Devuelve t para los 2 puntos interiores y false para el tercer punto.