The 27-year-old, who rides for the UAE Team Emirates-XRG cycling team, beat Italy's Antonio Tiberi by 29 seconds overall in the seven-stage 1,076 km race.
Another Italian, Matteo Sobrero, finished third overall, 37 seconds behind McNulty.
The fastest Pole, Rafał Majka, placed eighth in the final standings, 59 seconds back.
Polish rider Rafał Majka. Photo: PAP/Maciej Kulczyński
For Majka, the 2014 Tour de Pologne winner, it was his final domestic race before retiring from professional cycling in October.
Rafał Majka. Photo: PAP/Grzegorz Momot
The second-fastest Pole, Piotr Pękala, was 22nd overall, 3 minutes, 7 seconds behind McNulty.
Poland's Patryk Stosz was named the most active rider in the annual race, which was held for the 82nd time, drawing cyclists from 22 teams based in various countries.
Meanwhile, countryman Tomasz Budziński was declared the race's third-best climber.
Marcin Matuszewski has more...
Click on the audio player above to listen.