If your proposed transaction is to have an input of BTC 1.00000001, one output of BTC 0.9999 and a change output of BTC 0.00000001 (leaving BTC 0.0001 as a fee), then yes, most clients will reject it under the dust rule. Bitcoin Core's rule is to refuse transactions with any output that is too small - the precise details are a little complicated, but generally outputs of less than 546 satoshis (BTC 0.00000546) are forbidden. (You can see the full details in the source - it is the function CTxOut::IsDust()
in core.h
.) It is possible, however, that some nonstandard clients would relay your transaction, and it might find its way to a nonstandard miner who would include it in a block, but there is a risk that it would not.
If you are using Bitcoin Core and you actually try to make a transaction that takes an input of BTC 1.00000001 and sends BTC 0.9999 to another address, it will avoid this problem by not creating a change output, but adding the extra 1 satoshi to the fee instead. So you will effectively pay a fee of BTC 0.00010001, and your transaction should be relayed and confirmed with no problems.