Esta podría ser una respuesta tonta, perdón si lo es.
¿Los números de fila están basados en cero? ¿Qué sucede si cambia la cláusula where a:
WHERE rn = 0
?
EDITAR:También noté que podría faltar un "AS" en la línea:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) rn
Debería ser:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) AS rn