TL;DR: You only need (non-zero) padding in Skein if your message is not a multiple of 8 bits long.
Skein is built around a mode, the designers call "UBI" which relies upon a so-called tweakable block cipher, for Skein it's Threefish. A tweakable block cipher accepts three inputs: A tweak, a key and a plaintext block. The chaining value (eg the result of the last computation) is "the key" for the next block. Configuration data, like the current byte offset, the current tree parameters, and some other configuration values are fed into the tweak. The message is fed into the plaintext input, where there are two cases to distingfuish:
- The message length is not a multiple of the block length: In this case simply zero-pad until you get a full block (the offset in the configuration will prevent collisions here)
- The message length isn't even a multiple of 8 bits (ie an integral number of bytes long): In this case you add a special flag to the configuration value and a single set bit (ie a "1") behind your message. The rest is zero-padded again. The offset counter will only account for full bytes, thus "actual" padding is neccessary here.
If you want to read on it, the Skein specification is always there (PDF).