Варианты Твой код заталкивает в регистр 0 при равенстве и 1 при неравенстве, а не просто 1 при неравенстве, как это можно было понять из вопроса. Если так и нужно, то вариант WOLFa оптимален:
subi r18,1
rol r19
subi r18,-1 ;Это-если надо восстановить r18 (т.е. +255)
Если же нужно заталкивать в регистр 1 при ненулевом r18 и не заталкивать ничего при нулевом, то можно так:
cpi r18,0 ;Установить Z, если r18=0
sec ;Установить С безусловно
breq noshift ;Пропустить сдвиг, если z=1
rol r19
noshift: