Assuming a starting table like this:
mysql> SELECT * FROM test;
+------+------+
| col1 | col2 |
+------+------+
| a    |    1 |
| b    |    2 |
| c    |    1 |
| d    |    3 |
+------+------+
... you can get the result you want by doing this:
mysql> SELECT col1, col2, @a := @a + col2 AS col3 
    -> FROM test JOIN (SELECT @a := 0) t
    -> ORDER BY col1;
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
| a    |    1 |    1 |
| b    |    2 |    3 |
| c    |    1 |    4 |
| d    |    3 |    7 |
+------+------+------+
4 rows in set (0.00 sec)
If you reverse the order, you get the results according to your problem statement, i.e. col2 plus the previous col3 in the order displayed:
mysql> SELECT col1, col2, @a := @a + col2 AS col3 
    -> FROM test JOIN (SELECT @a := 0) t
    -> ORDER BY col1 DESC;
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
| d    |    3 |    3 |
| c    |    1 |    4 |
| b    |    2 |    6 |
| a    |    1 |    7 |
+------+------+------+
4 rows in set (0.00 sec)