Do I need to reenter old data after adding an index to a table? I want to add index to my tables. Some of my tables already have couple thousand rows.

Do I need to reenter my stored data after adding index to columns (to make them aware of index/so the indexing affect them as well  or it's going to take care of old data itself ?
According to the comments posted for your question, @ypercube is right. It is no. Here is why in terms of Storage Engine under /var/lib/mysql (default datadir):
InnoDB (innodb_file_per_table enabled)
With innodb_file_per_table enabled, table data and its indexes live in the database folder next to the .frm file. For example, for the table mydb.mytable, the manifestation of that InnoDB table outside of ibdata1 would be:

/var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibd

InnoDB (innodb_file_per_table disabled)
With innodb_file_per_table enabled, table data and its indexes live in the system tablespace file better known ibdata1. The data pages and index pages are 16KB blocks where rows and TEXT/BLOB overflow are managed.
MyISAM
For the MyISAM mydb.mytable, three files comprise its logical presence

/var/lib/mysql/mydb/mytable.frm is table structure header
/var/lib/mysql/mydb/mytable.MYD holds the data only
/var/lib/mysql/mydb/mytable.MYI holds the indexes (BTREE, FULLTEXT)

EPILOGUE
Regardless of Storage Engine, data pages and index pages are separate and distinct entities. Under the hood, when you issue the command
ALTER TABLE mydb.mytable ADD INDEX new_index (col1,col2);

a complete copy of the data is made. That complete copy is scanned and all index pages are migrated along with new index pages for the new_index index.