The 21-year-old winger, who was released by Burnley last month, played 14 times for the Saddlers during the first half of the 2016-17 season.
He spent parts of last season on loan at Lincoln City and Tranmere Rovers, helping the latter win promotion back to the English Football League.
Ginnelly joins former Tranmere teammate Andy Cook in moving to the Saddlers during the summer transfer window.
"I've known about Walsall's interest for a while and I knew there was a good chance I would end up back here," Ginnelly told the club website.
"The way the manager plays, it suits my style. It's League One football so I can't wait to get going.
"I've matured and learned a lot since I was last here. I've won a couple of promotions and I know about winning things now.
"I'll work hard, try to get at players, try to create things and try to score goals."