el 'cursor' predeterminado de PDO es PDO::CURSOR_FWDONLY eso significa que el cursor no puede volver a cero como sucede con mysql_data_seek para permitir que el cursor vuelva a cero, es necesario definir el uso de 'cursor desplazable'
ejemplo:
$db->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
antes de usarlo así:
$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);