Com base em seus motivos para não querer usar variáveis definidas pelo usuário como querer evitar 2 consultas, uma para inicializar e outra para usá-la, você pode usar o seguinte:
SELECT @a:[email protected]+1 serial_number,
marks
FROM student_marks,
(SELECT @a:= 0) AS a;