Order by x DESC - but only continuous rows
This should work:

SELECT id, name 
FROM data
WHERE id &lt;= 8 AND id &gt;= (
    SELECT MAX(d1.id)
    FROM data d1
    LEFT JOIN data d2 ON d2.id = d1.id - 1
    WHERE d2.id IS NULL
)
ORDER BY id DESC
;


The subquery look for the first gap (i.e. 5 to 6). See SQL Fiddle.

Output:

id | name 
 8 | Test 8 
 7 | Test 7 
 6 | Test 6