No difference whatsoever.
Blame it on Latin and its tricky prefixes. In the beginning, there was "inflammable," a perfectly nice English word based on the Latin "inflammare," meaning "to kindle," from "in" (in) plus "flamma" (flame). "Inflammable" became standard English in the 16th century. So far, so good.
Comes the 19th century, and some well-meaning soul dreamt up the word "flammable," basing it on a slightly different Latin word, "flammare," meaning "to set on fire." There was nothing terribly wrong with "flammable," but it never really caught on. After all, we already had "inflammable," so "flammable" pretty much died out in the 1800's.
"But wait," you say, "I saw 'flammable' just the other day." Indeed you did. "Flammable" came back, one of the few successful instances of social engineering of language.
The Latin prefix "in," while it sometimes means just "in" (as in "inflammable"), more often turns up in English words meaning "not" (as in "invisible" -- "not visible"). After World War Two, safety officials on both sides of the Atlantic decided that folks were too likely to see "inflammable" and decide that the word meant "fireproof," so various agencies set about encouraging the revival of "flammable" as a substitute. The campaign seems to have worked, and "inflammable" has all but disappeared.
That left what to call something that was not likely to burst into flames, but here the process of linguistic renovation was easier. "Non-flammable" is a nice, comforting word, and besides, it's far easier on the tongue than its now thankfully obsolete precursor, "non-inflammable."