There is potential for improvement here, such as determining the table's bottom rather than assuming 10,000 rows are sufficient, but ignoring that, you could:
Include the following in your declarations:
Dim firstfile As Boolean
firstfile = True
and then change your loop like so:
Do While Filename <> ""
'Open the file
Workbooks.Open (folderPath & Filename)
If firstfile Then
'Copy all the data from the file
Workbooks(Filename).Sheets(1).Range("A1:Z10000").Copy
Else
'Copy from 2nd row, the data from the file
Workbooks(Filename).Sheets(1).Range("A2:Z10000").Copy
End If
'Paste the data into the master sheet
ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
'Close the file
Workbooks(Filename).Close
'Get the next file
Filename = Dir()
firstfile = False
Loop