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