The issue with your awk code is primarily twofold:
- You don't instruct 
awk to use , as a field delimiter.  You can do this with -F ,. 
- You never test whether 
$1 is a key in the a array.  You can do this with $1 in a as a condition before the last block of your code.  It's ok to skip this if you expect that all names in the second file are present in the first (but you don't say anything about this). 
You also seem to output the fields in the wrong order compared with your expected output, and you use the default output delimiter, which is a space, rather than a comma (OFS = "," or OFS = FS, in a BEGIN block would fix that).
$ awk -F , 'BEGIN { OFS = FS } FNR == NR { names[$1] = $2; next } ($1 in names) { print $1, names[$1], $2 }' file1 file2
burnj01,Joe Burns,0001
burnj01,Joe Burns,0002
burnj01,Joe Burns,0010
burnj01,Joe Burns,2000
steves02,Santosh Steve,2048
steves02,Santosh Steve,2049
steves02,Santosh Steve,2091
$ join -t, <( sort file1 ) <( sort file2 )
burnj01,Joe Burns,0001
burnj01,Joe Burns,0002
burnj01,Joe Burns,0010
burnj01,Joe Burns,2000
steves02,Santosh Steve,2048
steves02,Santosh Steve,2049
steves02,Santosh Steve,2091
This sorts the two files and passes the sorted contents to the join utility.  The join utility does a relational JOIN operation between the two datasets on the first column (by default), essentially an INNER JOIN, if you are familiar with SQL.  We use -t , with join to tell it that the columns are comma-delimited.
If your shell does not understand the <( ... ) process substitution, then pre-sort the data.  The join utility expects sorted input.
sort -o file1.sorted file1
sort file2 | join -t, file1.sorted -
rm -f file1.sorted
     
    
burnj,0100in line4 in file2 a typo? it should beburnj01,0100? or you want partial matching then?joincommand.