Merrin, 30, spent this year with the Leeds Rhinos in the Super League, but is back with the club he started his career at in 2009.
The former Australia and New South Wales representative played 133 NRL games for the Dragons, including the 2010 Grand Final win, before joining the Penrith Panthers in 2016.
Merrin replaces Luciano Leilua, who was released from the final year of his contract, in the Dragons squad.
"Trent could've jumped like a kangaroo all the way back to Australia he's that excited to come back to the Dragons," Dragons director of rugby league pathways and list management Ian Millward said in a statement.
"Trent has indicated to the club several times over the past 12 months that he'd love to come home; an opportunity for this has since come up after the club granted Luciano his requested release.
— St George Illawarra Dragons (@NRL_Dragons) November 29, 2019
"Luciano indicated he wouldn't be renewing his contract with the Dragons beyond the 2020 season. As a result we'll be able to do a multiple things as far as overall recruitment is concerned with Luciano's money.
"Trent brings plenty of experience to the Dragons' forward pack and is someone who is really passionate and can't wait to put the red V back on."
The Dragons are looking to bounce back in 2020 after finishing 15th in the table this year.
Meanwhile, the Rhinos wrote on Twitter: "A big thank you to @TrentMerrin for all his efforts in blue and amber, from everyone at the Rhinos we wish him and Jess all the very best for the future."
Leeds also confirmed the signing of Matt Prior from the Cronulla Sharks.
— Leeds Rhinos (@leedsrhinos) November 29, 2019
Photo Getty Images Caption: Trent Merrin playing for the Dragons in 2015